const { autoUpdater } = require('electron-updater')
const { dialog, app } = require('electron')
const feedUrl = `${process.env.VUE_APP_FEED_URL}/printComponents/` // 检查更新地址

export const electronUpdate = (win) => {
  autoUpdater.setFeedURL({
    provider: 'generic',
    url: feedUrl,
  })
  autoUpdater.autoDownload = false
  autoUpdater.checkForUpdates()
  autoUpdater.on('update-available', () => {
    dialog
      .showMessageBox({
        type: 'info',
        title: '应用更新',
        message: '发现新版本，是否更新？',
        buttons: ['是', '否'],
      })
      .then((buttonIndex) => {
        if (buttonIndex.response == 0) {
          autoUpdater.downloadUpdate()
        }
      })
  })
  autoUpdater.on('download-progress', (res) => {
    win.webContents.send('download-progress', res)
  })

  autoUpdater.on('update-downloaded', () => {
    dialog
      .showMessageBox({
        title: '下载完成',
        message: '最新版本已下载完成, 退出程序进行安装',
      })
      .then(() => {
        autoUpdater.quitAndInstall()
        app.quit()
      })
  })
}
